/**
 * 获取当前位置
 * 
 */
export function getLocation() {
	return new Promise((resove, reject) => {
		// 向用户发起授权请求
		uni.authorize({
			scope: "scope.userLocation", // 位置授权
			success: (res) => {
				uni.getLocation({
					type: "gcj02",
					success: (res) => {
						const {
							latitude,
							longitude
						} = res;
						console.log(res);
						resove({
							latitude,
							longitude
						})
					},
					fail: (err) => {
						reject(err)
						wx.showModal({
							title: "您手机定位功能没有开启",
							content: "请在系统设置中打开定位服务",
							showCancel: false,
							success: () => {
								// 提示用户开启手机定位功能
								// 进入首页
							},
						});
					},
				});
			},
			fail: (err) => {
				reject(err)
				console.log(err, '获取位置失败');
				// 发起授权失败 ----> 用户拒绝授权
			},
		});
	})
}
/**
 * 获取位置权限
 * 
 */
export function getLocationAuthorize() {
	return new Promise((resolve, reject) => {
		//获取用户的当前设置
		uni.getSetting({
			success: (res) => {
				//判断是否有定位授权scope.userLocation，true表示已授权
				if (!res.authSetting["scope.userLocation"]) {
					//提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据，但不会实际调用对应接口。如果用户之前已经同意授权，则不会出现弹窗，直接返回成功。如果用户之前拒绝了授权，此接口会直接进入失败回调
					uni.authorize({
						scope: "scope.userLocation",
						success: () => {
							resolve('同意');
						},
						fail: (err) => {
							//根据缓存判断只显示一次跳转设置页授权的弹框
							if (err.errMsg == "authorize:fail auth deny") {
								uni.showModal({
									title: "授权提示",
									content: "是否允许获取定位权限",
									success: (resp) => {
										if (resp.confirm) {
											//调起客户端小程序设置界面，返回用户设置的操作结果。
											uni.openSetting({
												success(settingdata) {
													//用户设置定位权限
													if (settingdata.authSetting["scope.userLocation"]) {
														resolve('同意');
													} else {
														resolve('拒绝');
													}
												},
											});
										} else {
											//取消弹框
											resolve('拒绝');
										}
									},
								});
							}
						},
					});
				} else {
					resolve('同意');
				}
			},
		});
	});
}